package com.date.demo03;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class Review {
    public static void main(String[] args) {
        System.out.println("复习一下关于时区的类 ZonedDateTime");
        /**
         * ZonedDateTime就是 LocalDateTime 加 ZoneId
         * LocalDateTime 表示本地时间
         * ZoneId 表示是时区
         */

        // 获取本地时间
        ZonedDateTime now = ZonedDateTime.now();
        System.out.println(now); // 2021-12-24T10:25:08.084+08:00[Asia/Shanghai]
        // 获取指定时区时间
        ZonedDateTime new_york = ZonedDateTime.now(ZoneId.of("America/New_York"));
        System.out.println(new_york); // 2021-12-23T21:25:08.086-05:00[America/New_York]

        // 另一种方式 LocalDateTime 附加一个 ZoneId 来变成 ZonedDateTime
        //LocalDateTime ldt = LocalDateTime.of(2019,9,15,16,17);
        LocalDateTime ldt = LocalDateTime.now();
        // 设置时区 默认系统时区
        ZonedDateTime zbj = ldt.atZone(ZoneId.systemDefault());
        System.out.println(zbj); // 2019-09-15T16:17+08:00[Asia/Shanghai]
        // 设置美国纽约
        ZonedDateTime zny = ldt.atZone(ZoneId.of("America/New_York"));
        System.out.println(zny); // 2019-09-15T16:17-04:00[America/New_York]

        // ZonedDateTime 转本地时间 LocalDateTime
        LocalDateTime ldt_turn = now.toLocalDateTime();
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        System.out.println(dateTimeFormatter.format(ldt_turn)); // 2021-12-24 11:45:26
    }
}
